package com.bean.ncda;

import lombok.Data;

import java.io.Serializable;

/**
 * 运行状态
 *
 * @author jasonsang
 * 请求：
 * <ncda><req>yes</req><auto>yes</auto><st>nc1</st><time>100</time><var>ncstat
 * e</var></ncda>\n
 * 请求说明：
 * 获取运行状态以字段<var>ncstate</var>标识
 * 应答：
 * 应答：
 * <ncda><auto>yes</auto><time>100</time><ncstate>4</ncstate></ncda>
 * 应答说明：
 * 运行状态字段<ncstate>4</ncstate>，0（机床准备好）、1（程序运行）、2（紧急
 * 停止）、3（警告）、4（暂停）
 *
 * 客户端发送：
 * <ncda><req>yes</req><var>prg,ncstate</var></ncda>
 * 服务端返回应答：
 * <ncda><ncstate>4</ncstate><info>268435456</info>
 * <prg>D:/Debug/72H 跑车/72H.nc</prg></ncda>
 * 代表当前程序是“D:/Debug/72H 跑车/72H.nc”，暂停状态，
 * M00/M01 暂停
 */
@Data
public class NcdaNcstate implements Serializable {
    //    <auto>yes</auto>
    private String auto = "no";
    //    <time>100</time>
    private String time = "100";
    // <status> 当 PLC 初始化完成，该值>0
    private String status = "";
    //<ncstate> NC 状态（0—机床准备好，1—程序运行，2—紧急停止，3—警告，4—暂停）。
    private String ncstate = "";
    //<hrel> 手动释放有效时，该值>0
    private String hrel = "";
    //<mode> 0—自动模式，1—MDI 模式，2—手动模式，3—调试模式
    private String mode = "";
    //<tools> 按位表示的测试运行标志（bit0—测试运行，bit1—G00 速度测试，bit2—MST 锁定，bit3—全速运行）
    private String test = "";
    //<mmode> 手动模式：1—连续模式，2—增量模式，3—手轮
    private String mmode = "";
    //<amode> 自动运行模式：0—连续运行，1—单段运行
    private String amode = "";
    //<m01> M01 暂停有效时，该值>0。
    private String m01 = "";
    // <bsupr> 程序段跳段有效时，该值>0。
    private String bsupr = "";
    //<inauto> 当激活的 NC 程序以自动模式处理时，该值>0。
    private String inauto = "";
    //<ret> 断点返回有效时，该值>0。
    private String ret = "";
    //<backw> 回退有效时，该值>0。
    private String backw = "";
    //<manrtcp> 手动 RTCP 有效时，该值>0。
    private String manrtcp = "";
    //<debugmode> 处于调试模式时，该值>0。
    private String debugmode = "";
    // <blksel> 程序段选择有效时，该值>0。
    private String blksel = "";
    //<prg> 当前 NC 程序名
    private String prg = "";
    //<block> 当前 NC 程序段号
    private String block = "";
    //<proctime0> G00 运行时间
    private String proctime0 = "";
    //<proctime1> G01 运行时间
    private String protime1 = "";
    //<proctimestart> 系统启动时间
    private String proctimestart = "";
    //<proctimeproc> 程序运行时间
    private String protimeproc = "";
    //<remaindertime> 剩余加工时间
    private String reaindertime = "";
    /**
     *<info> 按位编码的 NC 状态补充信:
     * bit31 手动复位
     * bit30-M30 自动复位
     * bit29 手动暂停
     * bit28—M00/M01 暂停
     * bit27—单段停止，
     * bit26—等待 PLC 信号，
     * bit25—G00 倍率为 0，
     * bit24—G01 倍率为 0）。
     *
     * @return
     */
    private String info = "";


}
